<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <meta name="description" content="Change color of 3D models.">
    <meta name="cesium-sandcastle-labels" content="Showcases">
    <title>Cesium Demo</title>
    <script type="text/javascript" src="../Apps/Sandcastle/Sandcastle-header.js"></script>
    <script type="text/javascript" src="../ThirdParty/requirejs-2.1.20/require.js"></script>
    <script type="text/javascript">
        require.config({
            baseUrl : '../../../Source',
            waitSeconds : 60
        });
    </script>
</head>
<body class="sandcastle-loading" data-sandcastle-bucket="bucket-requirejs.html">
<style>
    @import url(../Apps/Sandcastle/templates/bucket.css);
    #toolbar {
        background: rgba(42, 42, 42, 0.8);
        padding: 4px;
        border-radius: 4px;
    }
    #toolbar input {
        vertical-align: middle;
        padding-top: 2px;
        padding-bottom: 2px;
    }
    #toolbar .header {
        font-weight: bold;
    }
</style>
<div id="cesiumContainer" class="fullSize"></div>
<div id="loadingOverlay"><h1>Loading...</h1></div>
<div id="toolbar">
</div>
<script id="cesium_sandcastle_script">
    function startup(Cesium) {
        'use strict';
//Sandcastle_Begin
        var viewer = new Cesium.Viewer('cesiumContainer', {
            infoBox : false,
            selectionIndicator : false,
            shadows : true
        });
        var sightline = new Cesium.Sightline({
            scene : viewer.scene
        });

        var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
            url : 'https://beta.cesium.com/api/assets/1459?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzNjUyM2I5Yy01YmRhLTQ0MjktOGI0Zi02MDdmYzBjMmY0MjYiLCJpZCI6NDQsImFzc2V0cyI6WzE0NTldLCJpYXQiOjE0OTkyNjQ3ODF9.SW_rwY-ic0TwQBeiweXNqFyywoxnnUBtcVjeCmDGef4'
        }));

//    var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
//        url : 'https://beta.cesium.com/api/assets/1458?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxYmJiNTAxOC1lOTg5LTQzN2EtODg1OC0zMWJjM2IxNGNlYmMiLCJpZCI6NDQsImFzc2V0cyI6WzE0NThdLCJpYXQiOjE0OTkyNjM4MjB9.1WKijRa-ILkmG6utrhDWX6rDgasjD7dZv-G5ZyCmkKg'
//    }));

        tileset.readyPromise.then(function() {
            var boundingSphere = tileset.boundingSphere;
            viewer.camera.viewBoundingSphere(boundingSphere, new Cesium.HeadingPitchRange(0.0, -0.5, boundingSphere.radius * 2));
            viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
        }).otherwise(function(error) {
            throw(error);
        });

//        viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
//            url : '//assets.agi.com/stk-terrain/world',
//            requestWaterMask : true,
//            requestVertexNormals : true
//        });
        var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
        handler.setInputAction(function(click) {
            var cartesian = viewer.scene.pickPosition(click.position);
//            let cartesian = viewer.scene.globe.pick(viewer.scene.camera.getPickRay(click.position), viewer.scene);
            if (cartesian) {
                sightline.setViewPosition(cartesian);
            }

//            handler.setInputAction(function(mouseMove) {
////                var cartesian = viewer.scene.pickPosition(mouseMove.endPosition);
//                let cartesian = viewer.scene.globe.pick(viewer.scene.camera.getPickRay(mouseMove.endPosition), viewer.scene);
//                if(cartesian){
//                    sightline.setTargetPosition(cartesian);
//                }
//            }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

            handler.setInputAction(function(click) {
                var cartesian = viewer.scene.pickPosition(click.position);
//                let cartesian = viewer.scene.globe.pick(viewer.scene.camera.getPickRay(click.position), viewer.scene);
                if (cartesian) {
                    sightline.setTargetPosition(cartesian);
                }
                handler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
            }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);


//Sandcastle_End
        Sandcastle.finishedLoading();
    }
    if (typeof Cesium !== "undefined") {
        startup(Cesium);
    } else if (typeof require === "function") {
        require(["Cesium"], startup);
    }
</script>
</body>
</html>
